/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.cotelasa.scp.dominio.servicio.impl;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import pe.com.cotelasa.common.dao.excepcion.DAOException;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.dominio.service.IServicioTipoDocumento;
import pe.com.cotelasa.scp.entidad.TipoDocumento;
import pe.com.cotelasa.scp.dao.IDAOTipoDocumento;
import pe.com.cotelasa.scp.dominio.common.ESTADO_REGISTRO;

/**
 *
 * @author usuario
 */
@Service
public class ServicioTipoDocumentoImpl implements IServicioTipoDocumento, Serializable {

    @Inject
    private IDAOTipoDocumento daoTipoDocumento;
    
    @Override
    public TipoDocumento obtenerTipoDocumentoPorNombre(TipoDocumento tipoDocumento) throws ServiceException {
        try {
            return daoTipoDocumento.obtenerTipoDocumentoPorNombre(tipoDocumento);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }

    @Override
    public Collection<TipoDocumento> listarTipoDocumentoActivos() throws ServiceException {
        try {
            return daoTipoDocumento.listarActivos(TipoDocumento.class);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }

    }

    @Override
    public Collection<TipoDocumento> listarTipoDocumentoDeSede() throws ServiceException {
        try {

            Map<String, Object> parametro = new HashMap<String, Object>();

            parametro.put("esGeneral", "U");
            parametro.put("estadoRegistro", "" + ESTADO_REGISTRO.ACTIVO.getValor());
            return daoTipoDocumento.obtenerColeccionEntidadPorFiltros(TipoDocumento.class, parametro);



        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }

    @Override
    public TipoDocumento obtenerTipoDocumentoPorId(Integer idTipoDocumento) throws ServiceException {
        try {
            return daoTipoDocumento.obtenerEntidadPorId(TipoDocumento.class, idTipoDocumento);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }
}
